            /** 
                @nosubgrouping 
            */
            class <CLASS> {

                // ==> <CLASS> - Friends

                /** Class allowed to access private members of @p <CLASS>, in
                    order to perform tests */
                friend class <CLASS>_tester;

            public:

                // ==> <CLASS> - Public Internal Types

                // ==> <CLASS> - Public Constructors

                /** */
                inline <CLASS>() noexcept;

                /** */
                <CLASS>(const <CLASS> &) = delete;

                /** */
                <CLASS>(<CLASS> &&) = delete;

                /** Destructor */
                ~<CLASS>( );

                // ==> <CLASS> - Public Accessors

                // ==> <CLASS> - Public Helpers

                // ==> <CLASS> - Public Processors

                // ==> <CLASS> - Public Operators

                /** */
                <CLASS> & operator=(const <CLASS> &)=delete;

                /** */
                <CLASS> & operator=(<CLASS> &&)=delete;

                /** not allowed */
                void* operator new (std::size_t size)
                    throw (std::bad_alloc) = delete; 

                /** not allowed */
                void operator delete (void *p_class_id) = delete;

                /** not allowed */
                void *operator new[] (size_t) = delete;

                /** not allowed */
                void operator delete[] (void *) = delete;

                /** not allowed */
                bool operator ==(const <CLASS> & )=delete;

                /** not allowed */
                bool operator !=(const <CLASS> & )=delete;

                /** not allowed */
                bool operator >=(const <CLASS> & )=delete;

                /** not allowed */
                bool operator >(const <CLASS> & )=delete;

                /** not allowed */
                bool operator <=(const <CLASS> & )=delete;

                /** not allowed */
                bool operator <(const <CLASS> & )=delete;

                // ==> <CLASS> - Public Attributes

            private:

                // ==> <CLASS> - Private Internal Types

                // ==> <CLASS> - Private Constructors

                // ==> <CLASS> - Private Accessors

                // ==> <CLASS> - Private Helpers

                // ==> <CLASS> - Private Processors

                // ==> <CLASS> - Private Operators

                // ==> <CLASS> - Private Attributes
            };
